# coding:utf-8
'''
Created on 2011-3-31
第五阶段
将单词复数化的简单模块。复数化原则：
1.如果一个单词以S、X或Z结尾，加ES。
2.如果一个单词以发音的H结尾，加ES；若以不发音的H结尾，加S。
3.如果一个单词以发I音的Y几位，把Y变IES；如果Y与元音搭配在一起发出其他声音的则只加S。
4.如果一起规则都不适用，就只添加S。
@author: Administrator
'''
import re
import string
def buildRule((pattern, search, replace)):
    return lambda word: re.search(pattern, word) and re.sub(search, replace, word)

def plural(noun, languate='en'):
    lines = file('rules.%s' % languate).readlines()
    patterns = map(string.split, lines)
    rules = map(buildRule, patterns)
    for rule in rules:
        result = rule(noun)
        if result: return result
        
print plural('boy')
print plural('man')
print plural('factory')